草庐IT

C++ 唯一指针 : memory leak

全部标签

c++ - 如何生成唯一的文件名或路径?

如何生成唯一的文件名或路径?我正在寻找一种既适用于Unix(类)操作系统又适用于Windows的解决方案。 最佳答案 使用boost::uuid:#includeusingstd::string;#includeusingboost::lexical_cast;#includeusingboost::uuids::uuid;#includeusingboost::uuids::random_generator;#includestringmake_uuid(){returnlexical_cast((random_generator

c++ - 错误 C4703 使用了可能未初始化的本地指针变量 'y'

我在下面提供的代码中收到一个错误,可能使用了未初始化的局部指针变量“y”和使用了可能未初始化的局部指针变量“z”。请帮我解决这个问题?UINT8*x=newUINT8[512];if(!x)gotoclean;//UINT32*y=NULL;UINT32*y=newUINT32[4];if(!y)gotoclean;//char*z=NULL;char*z=newchar[512];if(!z)gotoclean;{....SomeCode....}clean:if(x)delete[]x;if(y)delete[]y;if(z)delete[]z; 最佳答

windows - 你如何比较两个 HWND 指针?

可以吗if(HWND1==HWND2)或者是否有我需要使用的函数来查看两个hwnd是否指向同一个窗口? 最佳答案 HWND只是一个长值,所以是的,您可以那样比较它们。 关于windows-你如何比较两个HWND指针?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2112833/

C语言——指针详解(必收藏)

目录1.什么是指针?1.1概念1.2指针的大小​ 1.3指针类型的作用2.野指针 2.1野指针产生的原因2.2如何规避野指针3.指针运算 3.1指针+-整数3.2指针-指针3.3指针的关系运算 4.二级指针5.数组名*6.指针数组和数组指针 6.1指针数组*6.2数组指针  6.3举例区别含义7.数组参数和指针参数7.1数组参数7.2指针传参8.函数指针 9.函数指针数组9.1指向函数指针数组的指针*10.回调函数1.什么是指针?1.1概念简单的来说,指针就是地址。我们口头上说的指针其实指的是指针变量。指针变量就是一个存放地址的变量。1.2指针的大小 指针在32位机器下是4个字节,在64位机器

c++ - 有没有办法获取在处理信号期间访问的指针?

大概代码是这样的:#includevoidSegmentationFaultHandler(intsignal){if(signal==SIGSEGV){//howtocheckhereifit'sactualnullpointer?Throw(NullPointerException,"Objectpointernotsettoaninstanceofanobject.");}elseThrow(InvalidOperationException,"Signalhasbeeninterceptedbywrongfunction.");}intmain(){signal(SIGSEGV

c# - 即使队列已重命名,如何在 Windows 上唯一标识打印队列?

如何唯一可靠地识别给定服务器上的Windows打印队列,包括跨打印队列重命名?我想处理如下情况:Jdoe创建打印机A我的程序在某个时候收集了打印机A的信息Jdoe将打印机A重命名为打印机AA我的程序在某个时候再次收集有关打印机AA的信息如何判断打印机A和打印机AA是同一台打印机(名称已更改)?我想在支持WindowsXP/2003及更高版本的C#中执行此操作。我尝试过的事情:在Windows8/Server2012上,我似乎可以通过WMI查看CIM_LogicalDevice->DeviceID来执行此操作,这似乎在重命名过程中保持一致,但在早期版本的操作系统中,此属性仅包含队列名称并

windows - 64 位 Windows 8.1 和 Qt 上的 MIDI 应用程序 - 指针大小问题

我正在尝试开发一个C++Windows应用程序来处理来自某些MIDI设备的MIDI信息。我强制使用的操作系统是Windows8.164位。开发环境为Qt。在阅读了大量网页后,我发现Windows有一组低级函数来处理MIDI数据,允许将WindowsMIDI驱动程序与任何应用程序连接。这些功能在此处描述http://msdn.microsoft.com/en-us/library/windows/desktop/dd757277(v=vs.85).aspx到目前为止,我编写的软件工作正常,我能够在我的应用程序中处理传入的MIDI短消息。尽管如此,当涉及到将一些缓冲区从应用程序传递到驱动程

windows - 将Win32封装在一个类中——在CreateWindow中传递类指针

我看了很多关于这个主题的教程和帖子,他们都说我在我的CreateWindowEx()函数中传递类实例指针(this),然后存储它在窗口过程函数中,当WM_NCCREATE消息被发送时。我猜这是因为WM_NCCREATE应该是自创建窗口以来发送到窗口过程的第一条消息。几个问题/注意事项:通过调试,我了解到实际上WM_GETMINMAXINFO是第一条发送的消息,在WM_NCCREATE之前(至少在我的机器上是这样).这是否意味着我应该监听此消息而不是WM_NCCREATE?根据this热门文章,大家之所以在收到消息WM_NCCREATE后调用SetWindowLongPtr()是因为If

Windows 唯一标识符?

于是就有了这个软件。当以某种方式安装它时(可能读取文件或注册表项)识别我的Windows操作系统。它应该只为每台独特的计算机执行一次任务。如果我卸载该程序并重新安装它,该软件会记住它已经安装,因此不会执行该任务。如果我使用系统还原,软件也不会执行任务。如果我在安装前加载系统镜像,软件也不会执行任务。如果我重新安装Windows的全新副本,则只有软件可以完成任务。IP甚至无所谓。一切都一样,只是它是全新的Windows操作系统副本。所以我猜该软件会读取某种唯一的操作系统标识符,然后连接到服务器以创建用户配置文件。那么问题来了?软件用来检查系统标识符的那些文件可能是什么?到目前为止,我发现

windows - 给定一个指针,我如何找到它所属的 _HEAP_ENTRY?

我正在学习使用WinDbg,我可能会偏离正轨,但我假设如果我的程序没有使用分页堆,而不是“拥有”的_DPH_HEAP_BLOCK结构一个指向我的分配的指针,我会为分配的数据设置一个_HEAP_ENTRY。给定堆上已分配数据的地址,我如何找到与之对应的_HEAP_ENTRY(在WinDbg中),或者我的问题甚至没有意义?我的问题的根源是我想知道转储中的分配是否已释放或堆是否以某种方式损坏。 最佳答案 !heap-p-a启用页堆后,这会转储出有用的信息(可能包括最后一个分配/释放此堆block的人的调用堆栈)-我认为这可视化了_DPH_